docs(spec): record the enforcement mode vocabulary crosswalk in 6.2.1 - #402
Merged
imran-siddique merged 1 commit intoSep 7, 2026
Merged
Conversation
Section 6.2 requires the cMCP attested enforcement mode and the manifest's artifacts.policy_bundle.enforcement_mode to match, and section 3.2.2 claims the two fields align, but neither says which name denotes which state. Three vocabularies are in play: the manifest's enforce/advisory/audit-only, the cMCP runtime's enforcing/advisory/silent, and the TRACE claim schema's enforce/advisory/silent, which takes two names from the first and one from the second. The only written statement of the correspondence was a mapping table inside a consumer, so a second implementer had to rediscover it. Adds an informative 6.2.1 giving the three way crosswalk, citing cMCP and TRACE section 4.3 as the authority for what each runtime mode means, and keeping the suppressed-reporting difference between silent and audit-only explicit rather than asserting the states are identical. Points the alignment sentence in 3.2.2 at it. No RFC 2119 keyword is added and no requirement changes, so no conformance test is affected. Closes agentrust-io#344 Signed-off-by: Mohammed Zoheb Shaik <zoheb.shaik7@gmail.com>
Contributor
|
🟡 Contributor Check: MEDIUM
Automated check by AgenTrust Contributor Check. |
imran-siddique
approved these changes
Sep 7, 2026
imran-siddique
left a comment
Member
There was a problem hiding this comment.
Reviewed df0a026.
This implements the informative mapping requested in #344. I checked the table against cMCP's centralized manifest mapping and TRACE claim emitter. The text preserves the distinction between recording without enforcement and suppressing operational reporting, explains the caller-side translation, and leaves a normative vocabulary extension open. Accepting the stated audit-only interpretation for this informative crosswalk. No executable behavior changes; current hosted tests, lint and type checks pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds an informative section 6.2.1 recording how the three enforcement mode vocabularies correspond, and points the alignment sentence in 3.2.2 at it.
Why
Closes #344. Section 6.2 requires the cMCP attested enforcement mode and
artifacts.policy_bundle.enforcement_modeto match, and 3.2.2 says the two fields align, but neither says which name denotes which state. Three vocabularies are in play:enforceenforcingenforceadvisoryadvisoryadvisoryaudit-onlysilentsilentUntil now the only written statement of the correspondence was a mapping table inside a consumer, agentrust-io/cmcp#584, so a second implementer had to rediscover it or guess. On cmcp
mainat5b63642, 346 of its 385 files decode as text and the stringaudit-onlyappears in exactly one of them.The section records the correspondence without asserting the states are identical.
silentsuppresses operational reporting while still recording each decision, sosilentsatisfiesaudit-onlyandaudit-onlydoes not implysilent. Keeping that difference explicit is what the review comment asked for; the direction of the implication is my reading and is flagged below.Spec impact
Section 6.2.1 is new and informative. Section 3.2.2 gains a pointer clause. No RFC 2119 keyword is added, no requirement changes, and no conformance test is affected, so no sponsor is required under GOVERNANCE.
CHANGELOG.mdupdated under Unreleased.One sentence needs an author's eye. The specification has never defined what its three modes mean;
enforce,advisoryandaudit-onlyappear only in two schema blocks and the 3.2.2 sentence. To keep the suppressed-reporting difference explicit I had to write whataudit-onlymeans, which makes this the first written definition of it in the spec:That reading follows the argument in the issue, but it is an interpretation rather than a transcription. Happy to reword it.
Test plan
Run on this branch, not assumed from the fact that only documentation changed.
pytest -vpasses: 1481 passed, 6 skipped, 1 xfailedmypy src/agent_manifestpasses: no issues found in 26 source filesruff check src/ tests/ --select E,F,W --ignore E501passes (the CI invocation, ruff 0.16.6 as pinned inrequirements/dev.txt): all checks passedCHANGELOG.mdupdatedDCO
All commits in this PR are signed off (
git commit -s). By submitting this PR I certify the Developer Certificate of Origin.